﻿/**
	svcmgr: Manage services
	Allow to manage windows services
	FAR3 plugin

	© 2013 Andrew Grechkin

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program.  If not, see <http://www.gnu.org/licenses/>.
**/

#ifndef _FAR_PANELACTIONS_HPP_
#define _FAR_PANELACTIONS_HPP_

#include <libfar3/helper.hpp>


struct PanelController;


struct PanelActions {
	typedef bool (PanelController::* ptrToFunc)();

	PanelActions();

	void add(WORD Key, DWORD Control, PCWSTR text, ptrToFunc func = nullptr, PCWSTR long_text = nullptr);

	bool exec_func(PanelController * panel, WORD Key, DWORD Control) const;

	const KeyBarTitles * get_titles() const;

private:
	struct KeyAction {
		FarKey Key;
		ptrToFunc Action;
	};

	std::vector<KeyBarLabel> m_labels;
	std::vector<KeyAction> m_actions;
	KeyBarTitles m_titles;
};




#endif
